Changeset 402 for trunk/info/info/alkisn/alkisfsnw.php
- Timestamp:
- 04/23/18 15:33:39 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkisn/alkisfsnw.php
r399 r402 18 18 2017-12-08 Planung (Kommentare) der Erweiterung fÃŒr Berechtigte GrundbÃŒcher 19 19 2017-12-20 Links auf Lagebezeichnung verbessert. 20 21 +++ ToDo: +++ 22 - Wenn nur 1 Buchung auf der nÀchsten Stufe "Recht an" vorliegt (z.B. Erbbaurecht), dann sofort anzeigen. $berbu='' 23 Bei vielen Buchungen auf der nÀchsten Stufe (Miteigentumsanteil) nur die Anzahl, erst auf Anforderung (Parameter) &berbu='j' oder 2,3,4,fÃŒr maximale Stufen. 24 Anzahl weiterer "Rechte an" auf jeder Stufe anzeigen, auch wenn noch kein Link möglich ist. 25 MEHR: Alle "Rechte an" RÃŒckwÀrts auflisten analog View "buchungsrechte_3text". Bis zu 4 Buchungen weit. 26 Im Gegensatz zum "Bestandsnachweis" aber nur je eine BVNR weiter verfolgen, die auf dies eine FlurstÃŒck bezogen ist. 27 Dabei berechtigte Buchungen VOR dem Grundbuch anzeigen, also eine Berechtigungs-"Hierarchie" abbilden. 20 2018-04-11 Variable "gmlid" an Function "ALKISexport" ÃŒbergeben. Ist beim Schreiben des Headers noch unbekannt, wenn mit "&fskennz=" aufgerufen. 21 2018-04-23 Umfangreiche Ãberarbeitung der "Buchungsstellen" 22 23 ++ToDo: 24 - Buchung auf "fiktives Blatt" ist nur mit debug zu sehen: die <tr> in .css grau hinterlegen 25 - Umschalter (gleiches Modul) anders darstellen als Links zu anderen Nachweisen 28 26 - Parameter zum Umschalten mit/ohne BodenschÀtzung? 29 27 - Bessere Differenzierung bei den Nutzungsarten (Tabelle dafÃŒr aufbauen) 30 28 */ 31 29 session_start(); 32 33 // Var. aus Parameter initalisieren 34 $eig="n"; 35 $berbu="n"; 36 $showkey="n"; 37 38 // alle Parameter in Variable umwandeln 39 $cntget = extract($_GET); 30 $eig="n"; $showkey="n"; $nodebug=""; // Var. initalisieren 31 $cntget = extract($_GET); // alle Parameter in Variable umwandeln 40 32 41 33 // strikte Validierung aller Parameter … … 53 45 if (!isset($gkz) or !preg_match('#^[0-9]{3}$#', $gkz)) {die("Eingabefehler gkz");} 54 46 if (!preg_match('#^[j|n]{0,1}$#', $eig)) {die("Eingabefehler eig");} 55 if (!preg_match('#^[j|n]{0,1}$#', $berbu)) {die ("Eingabefehler berbu");}56 47 if (!preg_match('#^[j|n]{0,1}$#', $showkey)) {die ("Eingabefehler showkey");} 57 48 if ($showkey == "j") {$showkey=true;} else {$showkey=false;} // "j"/"n" als boolean umwandeln, ist praktischer abzufragen, wird oft gebraucht 49 if (!preg_match('#^j{0,1}$#', $nodebug)) {die("Eingabefehler nodebug");} 58 50 59 51 require_once("alkis_conf_location.php"); … … 69 61 <link rel="stylesheet" type="text/css" href="alkisauszug.css"> 70 62 <link rel="shortcut icon" type="image/x-icon" href="ico/Flurstueck.ico"> 71 <script type="text/javascript">72 function ALKISexport( ) {73 window.open( <?php echo "'alkisexport.php?gkz=".$gkz."&tabtyp=flurstueck&gmlid=".$gmlid."'"; ?>);63 <script> 64 function ALKISexport(gmlid) { 65 window.open('alkisexport.php?gkz=<?php echo $gkz;?>&tabtyp=flurstueck&gmlid=' + gmlid); 74 66 } 75 67 </script> … … 77 69 <body> 78 70 <?php 79 // S t a r t 71 // Mit URL-Parameter "&nodebug=j" kann man die Entwicklungsumgebung (in Conf definiert) ausschalten. Blendet z.B. "fiktives Blatt" aus. 72 // Manuell an die URL anfÃŒgen, wirkt nur temporÀr und wird nicht in Links weiter gereicht. 73 if ($nodebug == "j") {$debug=0;} 74 80 75 $con = pg_connect($dbconn." options='--application_name=ALKIS-Auskunft_alkisfsnw.php'"); 81 76 if (!$con) echo "\n<p class='err'>Fehler beim Verbinden der DB</p>"; 82 77 83 // Ein (ALB- ?)FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt78 // Ein FlurstÃŒcks-Kennzeichen wurde alternativ zur gml_id ÃŒbermittelt 84 79 if ($fskennz != '') { 85 // Ãbergabe Format z.B. "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 86 $arr=explode("-", $fskennz, 4); 80 $arr=explode("-", $fskennz, 4); // zerlegen 87 81 $zgemkg=trim($arr[0]); 88 if (strlen($zgemkg) == 20 and !isset($arr[1])) { // Oh, ist wohl schon das Datenbank-Feldformat89 $fskzdb=$zgemkg; 90 } else { // Nö, ist wohl eher ALB-Format82 if (strlen($zgemkg) == 20 and !isset($arr[1])) { 83 $fskzdb=$zgemkg; // Datenbank-Feldformat 84 } else { // Format "llgggg-fff-nnnn/zz.nn" oder "gggg-ff-nnn/zz" 91 85 // Das Kennzeichen auseinander nehmen. 92 86 if (strlen($zgemkg) == 6) { … … 121 115 $res = pg_prepare("", $sql); 122 116 $res = pg_execute("", $v); 123 if ($row = pg_fetch_a rray($res)) {117 if ($row = pg_fetch_assoc($res)) { 124 118 $gmlid=$row["gml_id"]; 125 119 } else { … … 132 126 } 133 127 134 // F L U R S T U E C K 128 // F L U R S T U E C K m. Gebiet 135 129 $sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, 136 to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung 137 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 138 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL;"; 139 130 to_char(cast(f.zeitpunktderentstehung AS date),'DD.MM.YYYY') AS zeitpunktderentstehung, f.istgebucht, g.gemarkungsnummer, g.bezeichnung, 131 r.bezeichnung AS rbez, k.bezeichnung AS kbez, m.bezeichnung AS mbez 132 FROM ax_flurstueck f 133 LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 134 LEFT JOIN ax_regierungsbezirk r ON f.regierungsbezirk=r.regierungsbezirk 135 LEFT JOIN ax_kreisregion k ON f.regierungsbezirk=k.regierungsbezirk AND f.kreis=k.kreis 136 LEFT JOIN ax_gemeinde m ON m.regierungsbezirk=f.regierungsbezirk AND m.kreis=f.kreis AND m.gemeinde=f.gemeinde 137 WHERE f.gml_id= $1 AND f.endet IS NULL AND g.endet IS NULL AND m.endet IS NULL AND k.endet IS NULL AND r.endet IS NULL;"; 140 138 $v = array($gmlid); // mit gml_id suchen 141 139 $res = pg_prepare("", $sql); 142 140 $res = pg_execute("", $v); 143 144 141 if (!$res) { 145 142 echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>"; 146 143 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 147 144 } 148 if ($row = pg_fetch_a rray($res)) {145 if ($row = pg_fetch_assoc($res)) { 149 146 $gemkname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 150 147 $gmkgnr=$row["gemarkungsnummer"]; 151 148 $bezirk=$row["regierungsbezirk"]; 149 $rbez=htmlentities($row["rbez"], ENT_QUOTES, "UTF-8"); 152 150 $kreis=$row["kreis"]; 151 $kbez=htmlentities($row["kbez"], ENT_QUOTES, "UTF-8"); 153 152 $gemeinde=$row["gemeinde"]; 153 $mbez=htmlentities($row["mbez"], ENT_QUOTES, "UTF-8"); 154 154 $flurnummer=$row["flurnummer"]; 155 155 $zaehler=$row["zaehler"]; … … 163 163 $fsgeomflaed=number_format($fsgeomflae,0,",",".") . " m²"; 164 164 $entsteh=$row["zeitpunktderentstehung"]; 165 $gml_buchungsstelle=$row["istgebucht"]; // wird erst im GB-Teil benötigt 165 166 $name=$row["name"]; // Fortfuehrungsnummer(n) 166 167 $arrn = explode(",", trim($name, "{}") ); // PHP-Array … … 173 174 pg_free_result($res); 174 175 175 // Balken 176 if ($eig=="j") { 176 if ($eig=="j") { // Balken 177 177 echo "<p class='fsei'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 178 ."\n <h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''>Flurstück mit Eigentümer</h2>";178 ."\n\n<h2>Flurstück mit Eigentümer</h2>"; 179 179 } else { 180 180 echo "<p class='fskennz'>ALKIS Flurstück ".$gmkgnr."-".$flurnummer."-".$flstnummer." </p>" 181 ."\n <h2><img src='ico/Flurstueck.png' width='16' height='16' alt=''>Flurstück</h2>";181 ."\n\n<h2>Flurstück</h2>"; 182 182 } 183 183 … … 186 186 if ( ($filtkreis != '' and $filtkreis != $kreis) or ($filtgem != '' and $filtgem != $gemeinde) ) { 187 187 // Einer der gesetzten Filter passt nicht 188 if ($debug > 2) { 189 //++ Schönes Bild? Stop-Zeichen? 188 if ($debug > 2) { //++ Schönes Bild? Stop-Zeichen? 190 189 echo "\n<p class='err'>Filter Kreis='".$filtkreis."', Gemeinde='".$filtgem."'</p>" 191 190 ."\n<p class='err'>Flstk. Kreis='".$fskrs."', Gemeinde='".$fsgem."'</p>"; … … 196 195 } 197 196 198 echo "\n<table class='outer'> \n<tr>\n\t<td>" // linke Seite199 ."\n\t \t<table class='kennzfs' title='Flurstückskennzeichen'>\n\t\t<tr>" // darin Tabelle Kennzeichen200 ."\n\t\t\t<td class='head'>Gmkg</td>\n\t\t\t<td class='head'>Flur</td>\n\t\t\t<td class='head'>Flurst-Nr.</td>\n\t\t</tr>"201 ."\n\t\t<tr>\n\t\t\t<td title='Gemarkung'>";202 if ($showkey) {203 echo "<span class='key'>".$gmkgnr."</span><br>";204 }205 echo $gemkname." </td>"206 ."\n\t\t\t <td title='Flurnummer'>".$flurnummer."</td>"207 ."\n\t\t\t <td title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t\t</tr>"208 ."\n\t\t </table>"209 ."\n\t</td>\n\t<td>" // rechte Seite 210 ."\n\t\t <table class='fsd'>" // FS-Daten 2 Spalten211 ."\n\t\t <tr>\n\t\t\t<td>Entstehung</td>"212 ."\n\t\t\t <td>".$entsteh."</td>\n\t\t</tr>"213 ."\n\t\t <tr>"214 ."\n\t\t\t <td>letz. Fortf</td>"215 ."\n\t\t\t <td title='Jahrgang / Fortführungsnummer - Fortführungsart'>";197 echo "\n<table class='outer'>" 198 ."\n\t<tr>\n\t\t<td class='ll'><img src='ico/Flurstueck.png' width='16' height='16' alt=''> Kennzeichen:</td>" // Links 199 ."\n\t\t<td>" // Mitte 200 ."\n\t\t\t<table class='kennzfs' title='Flurstückskennzeichen'>\n\t\t\t\t<tr>" // darin Tabelle Kennzeichen 201 ."\n\t\t\t\t\t<td class='head'>Gemarkung</td>\n\t\t\t\t\t<td class='head'>Flur</td>\n\t\t\t\t\t<td class='head'>Flurst-Nr.</td>\n\t\t\t\t</tr>" 202 ."\n\t\t\t\t<tr>\n\t\t\t\t\t<td title='Gemarkung'>"; 203 if ($showkey) {echo "<span class='key'>".$gmkgnr."</span><br>";} 204 echo $gemkname." </td>" 205 ."\n\t\t\t\t\t<td title='Flurnummer'>".$flurnummer."</td>" 206 ."\n\t\t\t\t\t<td title='Flurstücksnummer (Zähler / Nenner)'><span class='wichtig'>".$flstnummer."</span></td>\n\t\t\t\t</tr>" 207 ."\n\t\t\t</table>" 208 ."\n\t\t</td>\n\t\t<td>" // Rechts 209 ."\n\t\t\t<table class='fsd'>" // FS-Daten 2 Spalten 210 ."\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Entstehung</td>" 211 ."\n\t\t\t\t\t<td>".$entsteh."</td>\n\t\t\t\t</tr>" 212 ."\n\t\t\t\t<tr>" 213 ."\n\t\t\t\t\t<td>letz. Fortf</td>" 214 ."\n\t\t\t\t\t<td title='Jahrgang / Fortführungsnummer - Fortführungsart'>"; 216 215 foreach($arrn AS $val) { // Zeile f. jedes Element des Array 217 216 echo trim($val, '"')."<br>"; 218 217 } 219 218 echo "</td>" 220 ."\n\t\t</tr>" 221 ."\n\t\t</table>" 222 ."\n\t</td>\n</tr>\n</table>"; 223 // echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame . "</td>\n</tr>"; 224 // Ende Seitenkopf 225 226 echo "\n<hr>" 227 ."\n<p class='nwlink noprint'>weitere Auskunft:</p>" // oben rechts von der Tabelle 228 ."\n<table class='fs'>"; 229 230 // ** G e b i e t s z u g e h o e r i g k e i t ** 231 // eine Tabellenzeile mit der Gebietszugehoerigkeit eines Flurstuecks wird ausgegeben 232 // Schluessel "land" wird nicht verwendet, gibt es Bestaende wo das nicht einheitlich ist? 233 echo "\n<tr>\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>"; 234 235 // G e m e i n d e 236 $sql="SELECT bezeichnung FROM ax_gemeinde WHERE regierungsbezirk= $1 AND kreis= $2 AND gemeinde= $3 AND endet IS NULL;"; 237 238 $v = array($bezirk,$kreis,$gemeinde); 239 $res = pg_prepare("", $sql); 240 $res = pg_execute("", $v); 241 if (!$res) { 242 echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 243 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 244 } 245 $row = pg_fetch_array($res); 246 $gnam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 247 echo "\n\t<td class='lr'>Gemeinde</td>\n\t<td class='lr' colspan='3'>"; 248 if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} 249 // Link zur FS-Historie (passt nicht ganz in die Zeile "Gemeinde", aber gut unter "weitere Auskunft") 250 echo $gnam."</td>\n\t<td class='nwlink'>" 251 ."\n\t\t<p class='nwlink noprint'>" 219 ."\n\t\t\t\t</tr>" 220 ."\n\t\t\t</table>" 221 ."\n\t\t</td>\n\t</tr>\n</table>"; 222 223 echo "\n<hr>\n<table class='fs'>"; // FS-Teil 6 Spalten 224 echo "\n<tr>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>\n\t\t<td></td>" // 1-5 in erster Zeile kein "colspan" verwenden 225 ."\n\t\t<td>\n\t\t<p class='nwlink noprint'>weitere Auskunft:</p></td>" // 6 226 ."\n</tr>"; 227 228 echo "\n<tr>" // Zeile: G e b i e t s z u g e h o e r i g k e i t Gemeinde / Kreis / Regierungsbezirk 229 ."\n\t<td class='ll'><img title='Im Gebiet von' src='ico/Gemeinde.png' width='16' height='16' alt=''> Gebiet:</td>" // 1 230 ."\n\t<td>Gemeinde<br>Kreis<br>Regierungsbezirk</td>" // 2 231 ."\n\t<td class='lr' colspan='3'>"; // 3-5 232 if ($showkey) {echo "<span class='key'>(".$gemeinde.")</span> ";} 233 echo $mbez."<br>"; 234 if ($showkey) {echo "<span class='key'>(".$kreis.")</span> ";} 235 echo $kbez."<br>"; 236 if ($showkey) {echo "<span class='key'>(".$bezirk.")</span> ";} 237 echo $rbez 238 ."</td>" 239 ."\n\t<td class='nwlink'>" // 5 240 ."\n\t\t<p class='nwlink noprint'>" 252 241 ."\n\t\t\t<a href='alkisfshist.php?gkz=".$gkz."&gmlid=".$gmlid; 253 254 255 242 if ($showkey) {echo "&showkey=j";} 243 echo "' title='Vorgänger-Flurstücke'>Historie " 244 ."<img src='ico/Flurstueck_Historisch.png' width='16' height='16' alt=''>" 256 245 ."</a>" 257 ."\n\t\t</p>" 258 . "\n\t</td>\n</tr>"; 259 pg_free_result($res); 260 261 // K r e i s 262 $sql="SELECT bezeichnung FROM ax_kreisregion WHERE regierungsbezirk= $1 AND kreis= $2 AND endet IS NULL;"; 263 $v = array($bezirk,$kreis); 264 $res = pg_prepare("", $sql); 265 $res = pg_execute("", $v); 266 if (!$res) { 267 echo "\n<p class='err'>Fehler bei Kreis</p>"; 268 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 269 } 270 $row = pg_fetch_array($res); 271 $knam = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 272 echo "\n<tr>\n\t<td> </td>\n\t<td>Kreis</td>\n\t<td class='lr' colspan='3'>"; 273 if ($showkey) {echo "<span class='key'>(".$kreis.")</span> ";} 274 echo $knam."</td>\n\t<td> </td>\n</tr>"; 275 pg_free_result($res); 276 277 // R e g - B e z 278 $sql="SELECT bezeichnung FROM ax_regierungsbezirk WHERE regierungsbezirk= $1 AND endet IS NULL;"; 279 $v = array($bezirk); 280 $res = pg_prepare("", $sql); 281 $res = pg_execute("", $v); 282 if (!$res) { 283 echo "\n<p class='err'>Fehler bei Regierungsbezirk</p>"; 284 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."</p>";} 285 } 286 $row=pg_fetch_array($res); 287 $bnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 288 echo "\n<tr>\n\t<td> </td>\n\t<td>Regierungsbezirk</td>\n\t<td class='lr' colspan='3'>"; 289 if ($showkey) {echo "<span class='key'>(".$bezirk.")</span> ";} 290 echo $bnam."</td>\n\t<td> </td>\n</tr>"; 291 pg_free_result($res); 292 // ENDE G e b i e t s z u g e h o e r i g k e i t 246 ."\n\t\t</p>" 247 ."\n\t</td>" // 6 248 ."\n</tr>"; 293 249 294 250 // ** L a g e b e z e i c h n u n g ** 295 251 296 252 // Lagebezeichnung M I T Hausnummer 297 298 253 // ax_flurstueck >weistAuf> AX_LagebezeichnungMitHausnummer 299 254 $sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung, s.gml_id AS kgml … … 316 271 $j=0; 317 272 $kgmlalt=""; 318 while($row = pg_fetch_a rray($res)) {273 while($row = pg_fetch_assoc($res)) { 319 274 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 320 275 if (substr($sname, strlen($sname) -3, 3) == 'weg') { // Versuch fuer korrekten Satzbau … … 324 279 } 325 280 $hsnr=$row["hausnummer"]; 326 echo "\n<tr> \n\t";327 if ($j == 0) { 281 echo "\n<tr>"; 282 if ($j == 0) { // 1 328 283 echo "\n\t<td class='ll'><img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''> Adresse:</td>"; 329 284 } else { 330 285 echo "\n\t<td> </td>"; 331 286 } 332 echo "\n\t<td> </td>" 333 ."\n\t<td class='lr' colspan='3'>"; 334 if ($showkey) { 335 echo "<span class='key' title='StraÃenschlüssel'>(".$row["lage"].")</span> "; 336 } 337 echo $sname." ".$hsnr."</td>"; 338 339 // rechte Spalte 340 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 287 echo "\n\t<td> </td>" // 2 288 ."\n\t<td class='lr' colspan='3'>"; // 3-5 289 if ($showkey) {echo "<span class='key' title='StraÃenschlüssel'>(".$row["lage"].")</span> ";} 290 echo $sname." ".$hsnr."</td>"; 291 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; // 6 341 292 342 293 // +++ davor auch Link "StraÃe" … … 352 303 if ($showkey) {echo "&showkey=j";} 353 304 echo "'>Lage <img src='ico/Lage_mit_Haus.png' width='16' height='16' alt=''></a>" 354 ."\n\t\t</p>\n\t</td>" 305 ."\n\t\t</p>\n\t</td>" // 6 355 306 ."\n</tr>"; 356 307 $j++; … … 359 310 pg_free_result($res); 360 311 } 361 // +++ Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste?362 312 363 313 // Lagebezeichnung O H N E Hausnummer (Gewanne oder nur Strasse) 364 365 314 // ax_flurstueck >zeigtAuf> AX_LagebezeichnungOhneHausnummer 366 315 $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung … … 378 327 } 379 328 $j=0; 380 while($row = pg_fetch_a rray($res)) {329 while($row = pg_fetch_assoc($res)) { 381 330 $skey=$row["lage"]; // Strassenschl. 382 331 $lgml=$row["gml_id"]; // key der Lage 383 332 $gewann = htmlentities($row["unverschluesselt"], ENT_QUOTES, "UTF-8"); 384 385 333 if ($gewann != "") { 386 334 echo "\n<tr>" 387 ."\n\t<td class='ll' title='unverschlüsselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" 388 ."\n\t<td></td>" 389 ."\n\t<td class='lr' colspan='3'>".$gewann."</td>" 390 ."\n\t<td>\n\t\t<p class='nwlink noprint'>" 335 ."\n\t<td class='ll' title='unverschlüsselte Lagebezeichnung'><img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''> Gewanne:</td>" // 1 336 ."\n\t<td></td>" // 2 337 ."\n\t<td class='lr' colspan='3'>".$gewann."</td>" // 3-5 338 ."\n\t<td>\n\t\t<p class='nwlink noprint'>" // 6 391 339 ."\n\t\t\t<a title='Flurstücke mit der Gewanne ".$gewann."' href='alkislage.php?gkz=".$gkz."&ltyp=o&gmlid=".$lgml; 392 340 if ($showkey) {echo "&showkey=j";} 393 341 echo "'>\n\t\t\tLage <img src='ico/Lage_Gewanne.png' width='16' height='16' alt=''></a>" 394 ."\n\t\t</p>\n\t</td>" 342 ."\n\t\t</p>\n\t</td>" // 6 395 343 ."\n</tr>"; 396 344 } elseif ($skey > 0) { … … 402 350 } 403 351 echo "\n<tr>" 404 ."\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Straße:</td>" 405 ."\n\t<td></td>" 406 ."\n\t<td class='lr' colspan='3'>"; 407 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 408 echo $sname."</td>"; 409 410 // rechte Spalte 411 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>" 352 ."\n\t<td class='ll'><img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''> Straße:</td>" // 1 353 ."\n\t<td></td>" // 2 354 ."\n\t<td class='lr' colspan='3'>"; // 3-5 355 if ($showkey) {echo "<span class='key'>(".$skey.")</span> ";} 356 echo $sname."</td>"; 357 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>" // 6 412 358 ."\n\t\t\t<a title='FlurstÃŒcke ".$slink."' href='alkislage.php?gkz=".$gkz."&ltyp=o&gmlid=".$lgml; 413 359 if ($showkey) {echo "&showkey=j";} 414 360 echo "'>\n\t\t\tLage <img src='ico/Lage_an_Strasse.png' width='16' height='16' alt=''>\n\t\t\t</a>" 415 ."\n\t\t</p>\n\t</td>" 361 ."\n\t\t</p>\n\t</td>" // 6 416 362 ."\n</tr>"; 417 363 } … … 419 365 } 420 366 pg_free_result($res); 421 // ENDE L a g e b e z e i c h n u n g 422 423 // ** N U T Z U N G ** Gemeinsame FlÀche von NUA und FS 424 // Tabellenzeilen (3 Spalten) mit tats. Nutzung zu einem FS ausgeben 425 426 /* N U T Z U N G C l a s s i c (alt) 427 $sql ="SELECT m.title, m.fldclass, m.fldinfo, n.gml_id, n.nutz_id, n.class, n.info, n.zustand, n.name, n.bezeichnung, m.gruppe, 428 st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) AS schnittflae, c.label, c.blabla 429 FROM ax_flurstueck f, nutzung n JOIN nutzung_meta m ON m.nutz_id=n.nutz_id 430 LEFT JOIN nutzung_class c ON c.nutz_id=n.nutz_id AND c.class=n.class 431 WHERE f.gml_id= $1 AND st_intersects(n.wkb_geometry,f.wkb_geometry) = true 432 AND st_area(st_intersection(n.wkb_geometry,f.wkb_geometry)) > 0.05 433 AND f.endet IS NULL ORDER BY schnittflae DESC;"; 434 435 $v = array($gmlid); 436 $res = pg_prepare("", $sql); 437 $res = pg_execute("", $v); 438 if (!$res) { 439 echo "\n<p class='err'>Fehler bei Suche tats. Nutzung</p>"; 440 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 441 } 442 $the_Xfactor=$fsbuchflae / $fsgeomflae; // geom. ermittelte FlÀche auf amtl. BuchflÀche angleichen 443 $j=0; 444 while($row = pg_fetch_array($res)) { 445 $grupp=$row["gruppe"]; // 4 Gruppen 446 $nutzid=$row["nutz_id"]; // 27 Tabellen, num. Key 447 $title=htmlentities($row["title"], ENT_QUOTES, "UTF-8"); // Titel der 27 Tabellen 448 $fldclass=$row["fldclass"]; // Name 1. Zusatzfeld 449 $fldinfo= $row["fldinfo"]; // Name 2. Zus. 450 $gml=$row["gml_id"]; 451 $class=$row["class"]; // 1. Zusatzfeld verschlÃŒsselt -> nutzung_class 452 $info=$row["info"]; // 2. Zus. verschlÃŒsselt (noch keine Info zum entschl.) 453 $schnittflae=$row["schnittflae"]; 454 $label=$row["label"]; // Nutzungsart entschlÃŒsselt 455 $zus=$row["zustand"]; // im Bau 456 $nam=$row["name"]; // Eigenname 457 $bez=$row["bezeichnung"]; // weiterer Name (unverschl.) 458 $blabla=htmlentities($row["blabla"], ENT_QUOTES, "UTF-8"); 459 $label=str_replace("/", "<br>", $label); // Ersetzt "/" durch html-Zeilenwechsel 460 461 echo "\n<tr>\n\t"; 462 if ($j == 0) { 463 echo "<td class='ll' title='Abschnitt der tatsächlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 464 } else { 465 echo "<td> </td>"; 466 } 467 $absflaebuch = $schnittflae * $the_Xfactor; // angleichen geometrisch an amtliche FlÀche 468 $schnittflae = number_format($schnittflae,1,",",".") . " m²"; // geometrisch 469 $absflaebuch = number_format($absflaebuch,0,",",".") . " m²"; // Abschnitt an BuchflÀche angeglichen 470 echo "\n\t<td class='fla' title='geometrisch berechnet: ".$schnittflae."'>".$absflaebuch."</td>"; 471 472 echo "\n\t<td class='lr' colspan='3'>"; 473 if ($class == 0) { 474 if ($showkey) {echo "<span class='key'>(".$nutzid.")</span> ";} 475 echo $title; // Name der Tabelle 476 } elseif ( ($fldclass == "Funktion" OR $fldclass == "Vegetationsmerkmal") AND $label != "") { // Kurze Anzeige 477 if ($showkey) {echo "<span class='key' title='".$fldclass."'>(".$nutzid."-".$class.")</span> ";} 478 if ($blabla = "") { 479 echo $label; 480 } else { 481 echo "<span title='".$blabla."'>".$label."</span>"; 482 } 483 } else { // ausfuehrlichere Anzeige 484 echo $title; // NUA-Tabelle 485 if ($class != "") { // NUA-SchlÃŒssel 486 echo ", ".$fldclass.": "; // Feldname 487 if ($showkey) {echo "<span class='key' title='".$fldclass."'>(".$nutzid."-".$class.")</span> ";} 488 if ($label != "") { // Bedeutung dazu wurde erfasst 489 if ($blabla = "") { 490 echo $label; 491 } else { 492 echo "<span title='".$blabla."'>".$label."</span>"; 493 } 494 } else { // muss noch erfasst werden 495 echo $class." "; // SchlÃŒssel als Ersatz fÃŒr Bedeutung 496 } 497 } 498 } 499 if ($info != "") { // manchmal ein zweites Zusatzfeld (wie entschlÃŒsseln?) 500 echo ", ".$fldinfo."=".$info; 501 } 502 if ($zus != "") { // Zustand 503 echo "\n\t\t<br>"; 504 if ($showkey) {echo "<span class='key'>(".$zus.")</span> ";} 505 echo "<span title='Zustand'>"; 506 switch ($zus) { 507 case 2100: echo "AuÃer Betrieb, stillgelegt, verlassen"; break; 508 case 4000: echo "Im Bau"; break; 509 case 8000: echo "Erweiterung, Neuansiedlung"; break; 510 default: echo "Zustand: ".$zus; break; 511 } 512 echo "</span>"; 513 } 514 if ($nam != "") {echo "<br>Name: ".$nam;} 515 if ($bez != "") {echo "<br>Bezeichnung: ".$bez;} 516 517 echo "</td>"; 518 echo "\n\t<td>"; 519 switch ($grupp) { // Icon nach 4 Objektartengruppen 520 case "Siedlung": $ico = "Abschnitt.png"; break; 521 case "Verkehr": $ico = "Strassen_Klassifikation.png"; break; 522 case "Vegetation": $ico = "Wald.png"; break; 523 case "GewÀsser": $ico = "Wasser.png"; break; 524 default: $ico = "Abschnitt.png"; break; 525 } 526 // Icon ist auch im Druck sichtbar, class='noprint' ? 527 echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; 528 echo "</td>"; 529 echo "\n</tr>"; 530 $j++; 531 } 532 E N D E N U T Z U N G C l a s s i c */ 533 534 /* Status "Nutzung": 535 536 Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen 537 Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an. 538 539 Aus der norGIS-Struktur wird ersatzweise VORLÃUFIG die Tabelle "nutz_21" verwendet, 540 die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert. 541 Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt. 542 543 Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt. 544 Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell. 545 Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber 546 durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht. 547 z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen' 548 nun zur Nutzungsart "Offen". 549 Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÃŒssels wird das zur "WohnbauflÀche, Offen". 550 Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur 551 Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */ 552 367 368 /* Status "N u t z u n g": 369 Die Classic-Tabelle "nutzung" ist eine Zusammenfassung aller Tabellen mit Nutzungs-FlÀchen 370 Die Classic-Tabelle "nutzung_meta" zeigt die Kategorie und Gruppe des Nutzungs-Abschnitts an. 371 372 Aus der norGIS-Struktur wird ersatzweise VORLÃUFIG die Tabelle "nutz_21" verwendet, 373 die das alte ALB-Format der Nutzungs-Abschnitte von FlurstÃŒcken simuliert. 374 Hier finden sich bereits verschnittene FlÀchen, aber die gml_id fehlt. 375 376 Die EntschlÃŒsselung der Nutzungsart in den verschiedenen ALKIS-Varianten ist darin unterentwickelt. 377 Diese ist eigentlich fÃŒr jede der getrennten Tabellen der Gruppe Nutzungsart individuell. 378 Die Classic-Lösung mit 2 Zusatzfeldern war schon sehr pauschalisiert, aber 379 durch die RÃŒck-Konvertierung in ALB-Strukturen in der norGIS-Version ist das zu stark vereinfacht. 380 z.B. wird "WohnbauflÀche" mit der Zusatzeigenschaft "Art der Bebauung": 'Offen' 381 nun zur Nutzungsart "Offen". 382 Durch JOIN auf die "alkis_elemente" mit einem Teil des SchlÃŒssels wird das zur "WohnbauflÀche, Offen". 383 Es sollte eine Tabellen-Struktur bereit gestellt werden, die auch aussagt, dass der Wert "Offen" zur 384 Zusatz-Eigenschaft "Art der Bebauung" gehört. Dazu muss das PostProcessing erweitert werden. */ 553 385 554 386 $sql="SELECT e.definition, trim(both FROM n.nutzsl) AS nutzsl, trim(both FROM n.fl) AS fl, trim(both FROM s.nutzung) AS nutzung … … 565 397 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = FS-Kennz = '".$fskennzalb."'</p>";} 566 398 } 567 568 399 $j=0; 569 while($row = pg_fetch_a rray($res)) {400 while($row = pg_fetch_assoc($res)) { 570 401 $flae=$row["fl"]; // BuchflÀche 571 402 $nutzsl=$row["nutzsl"]; // SchlÃŒssel … … 573 404 $defi=$row["definition"]; // Langer Text mit Beschreibung 574 405 $title=htmlentities($defi, ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 575 576 406 echo "\n<tr>\n\t"; 577 if ($j == 0) { 407 if ($j == 0) { // 1 578 408 echo "<td class='ll' title='Abschnitt der tatsächlichen Nutzung'><img src='ico/Abschnitt.png' width='16' height='16' alt=''> Nutzung:</td>"; 579 409 } else { … … 581 411 } 582 412 $absflaebuch = number_format($flae,0,",",".") . " m²"; // Formatierte Abschnitts-Buch-FlÀche 583 echo "\n\t<td class='fla' title='Buchfläche des Abschnitts'>".$absflaebuch."</td>"; 584 585 echo "\n\t<td class='lr' colspan='3' title='".$title."'>"; 413 echo "\n\t<td></td>"; // 2 414 echo "\n\t<td class='fla' title='Buchfläche des Abschnitts'>".$absflaebuch."</td>"; // 3 - gleiche Spalte wie Fl. in BodenschÀtzg. 415 echo "\n\t<td></td>"; // 4 416 echo "\n\t<td class='lr' title='".$title."'>"; // 5 - gleiche Sp. wie Zustandsstufe usw. 586 417 if ($showkey) {echo "<span class='key'>(".$nutzsl.")</span> ";} 587 418 echo $nutzung 588 419 ."</td>" 589 ."\n\t<td>"; 420 ."\n\t<td>"; // 6 590 421 /* // Derzeit ist keine Gruppe zugeordnet 591 422 switch ($grupp) { // Icon nach 4 Objektartengruppen … … 597 428 } 598 429 // Icon ist auch im Druck sichtbar, class='noprint' ? 599 echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; 600 */ 601 echo "</td>" 430 echo "<p class='nwlink'><img title='".$title."' src='ico/".$ico."' width='16' height='16' alt='NUA'></p>"; */ 431 echo "</td>" // 6 602 432 ."\n</tr>"; 603 433 $j++; … … 605 435 pg_free_result($res); 606 436 607 echo "\n<tr>" // Summenzeile 608 ."\n\t<td class='re' title='amtliche Fläche (Buchfläche)'>Fläche:</td>" 609 ."\n\t<td class='fla sum'>" 610 ."<span title='geometrisch berechnete Fläche = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>"; 611 612 // Flaeche und Link auf GebÀude-Auswertung 613 echo "\n\t<td colspan='3'> </td>\n\t<td>" 437 echo "\n<tr>" // FlÀchen-Summenzeile 438 ."\n\t<td class='re' title='amtliche Fläche (Buchfläche)'>Fläche:</td>" // 1 439 ."\n\t<td> </td>" // 2 440 ."\n\t<td class='fla sum'>" // 3 Flaeche 441 ."<span title='geometrisch berechnete Fläche = ".$fsgeomflaed."' class='flae'>".$fsbuchflaed."</span></td>" 442 ."\n\t<td> </td>" // 4 443 ."\n\t<td> </td>" // 5 444 ."\n\t<td>" // 6 Link auf GebÀude-Auswertung 614 445 ."\n\t\t<p class='nwlink noprint'>" // Gebaeude-Verschneidung 615 616 617 618 619 620 621 622 446 ."\n\t\t\t<a href='alkisgebaeudenw.php?gkz=".$gkz."&gmlid=".$gmlid; 447 if ($showkey) {echo "&showkey=j";} 448 if ($cnt_adressen > 0) { // wenn Adresse vorgekommen ist 449 echo "' title='Gebäude auf oder an dem Flurstück'>Gebäude "; 450 } else { // GebÀude mit Adresse gibt es NICHT, das ist klar 451 echo "' title='Suche Gebäude ohne Adresse auf dem Flurstück oder angrenzende Gebäude'>Suche "; 452 } 453 echo "<img src='ico/Haus.png' width='16' height='16' alt=''></a>" 623 454 ."\n\t\t</p>" 624 ."\n\t</td>" 625 ."\n</tr>"; 626 // ENDE N U T Z U N G 627 628 629 // K L A S S I F I Z I E R U N G 630 631 // Klassifizierung nach W a s s e rrecht 632 /* 633 // Tabelle immer leer? 634 $sql="SELECT h.v, w.artderfestlegung, st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) AS schnittflae, f.amtlicheflaeche, st_area(f.wkb_geometry) as fsgeomflae 635 FROM ax_flurstueck f 636 JOIN ax_klassifizierungnachwasserrecht w 637 ON st_intersects(w.wkb_geometry, f.wkb_geometry) AND st_area(st_intersection(w.wkb_geometry, f.wkb_geometry)) > 0.05 638 LEFT JOIN alkis_wertearten h 639 ON cast(w.artderfestlegung AS character varying) = h.k AND h.element='ax_klassifizierungnachwasserrecht' AND h.bezeichnung='artderfestlegung' 640 WHERE f.gml_id = $1 AND f.endet IS NULL AND w.endet IS NULL ORDER BY schnittflae DESC"; 641 642 $v = array($gmlid); 643 $res = pg_prepare("", $sql); 644 $res = pg_execute("", $v); 645 if (!$res) {echo "\n<p class='err'>Fehler bei DB-Abfrage zur Klassifizierung Wasser</p>\n";} 646 647 if(!empty($res) && pg_num_rows($res) > 0) { 648 echo "\n<table>"; 649 while($row = pg_fetch_array($res)) { 650 $fsbuchflae=$row["amtlicheflaeche"]; 651 $fsgeomflae=$row["fsgeomflae"]; 652 $the_Xfactor=$fsbuchflae / $fsgeomflae; // ++ nicht in Loop, ist konst. je FS 653 $absflaebuch = $row['schnittflae'] * $the_Xfactor; 654 echo"\n<tr><td></td><td></td></tr>" 655 ."\n<tr><td><b>FlÀche</b></td><td class='klassifizerung'><span class=''>".number_format(intval($absflaebuch),0,",",".")." m²</span></td></tr>" 656 ."\n<tr><td><b>Bezeichnung</b></td><td class='klassifizerung'><span class=''>".$row['v']."</span></td></tr>" 657 ."\n<tr><td></td><td></td></tr>"; 658 } 659 echo "</table>"; 660 } 661 // Klassifizierung nach S t r a à e n recht 662 // Tabelle immer leer? 663 */ 455 ."\n\t</td>" // 6 456 ."\n</tr>"; 664 457 665 458 // B o d e n s c h À t z u n g … … 668 461 669 462 // BodenschÀtzungs-Abschnitte mit FlurstÃŒcken verschneiden, Spalten entschlÃŒsseln 670 $sql="SELECT 671 kulturart.k AS kulturartk, kulturart.v AS kulturartv, 672 bodenart.k AS bodenartk, bodenart.v AS bodenartv, 463 $sql="SELECT kulturart.k AS kulturartk, kulturart.v AS kulturartv, 464 bodenart.k AS bodenartk, bodenart.v AS bodenartv, 673 465 zustbod.v AS zustbodv, 674 466 b.entstehungsartoderklimastufewasserverhaeltnisse AS entsteh, b.sonstigeangaben, 675 b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl, 467 b.bodenzahlodergruenlandgrundzahl as bodenzahl, b.ackerzahlodergruenlandzahl AS ackerzahl, 676 468 b.jahreszahl, st_area(st_intersection(b.wkb_geometry, f.wkb_geometry)) AS schnittflae 677 469 FROM ax_flurstueck f … … 686 478 $res = pg_execute("", $v); 687 479 if (!$res) {echo "\n<p class='err'>Fehler bei DB-Abfrage zur Klassifizierung Boden</p>\n";} 688 689 480 $gesertragsmz = 0; // Gesamt-ErtragsMesszahl 690 481 $klasflae = 0; // Summe klassifizierte FlÀche 691 482 $j=0; 692 693 483 if(!empty($res) && pg_num_rows($res) > 0) { 694 695 while ($row = pg_fetch_array($res)) { 484 while ($row = pg_fetch_assoc($res)) { 696 485 $kulturartk=$row['kulturartk']; // Key - 697 486 $kulturartv=$row['kulturartv']; // - Value … … 718 507 $entsteh=$row['entsteh']; 719 508 $sonst=$row['sonstigeangaben']; 720 721 // Sp. 1/4 722 if ($j == 0) { 509 if ($j == 0) { // 1 723 510 echo "\n<tr>\n\t<td class='ll' title='Abschnitt Bodenschätzung'><img src='ico/Landwirt.png' width='16' height='16' alt=''> Bodenschätzung:</td>"; 724 511 } else { 725 512 echo "\n<tr>\n\t<td> </td>"; 726 513 } 727 728 // Sp. 2/4 729 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>"; 730 731 // Sp. 3/4 - unterteilt in 3 Sp. 732 echo "\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>"; 733 echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; 734 echo "\n\t<td class='lr'>"; 514 echo "\n\t<td class='fla' title='Ertragsmesszahl: Produkt von ".$kbez2."/100 und Fläche.'>EMZ ".$ertragszahl."</td>"; // 2 515 echo "\n\t<td class='re' title='Fläche des Schätzungsabschnitts'>".$absbuchflaedis."</td>"; // 3 516 echo "\n\t<td class='lr'><span title='".$kbez1."'>".$boedenzahl."</span>/<span title='".$kbez2."'>".$ackerzahl."</span></td>"; // 4 517 echo "\n\t<td class='lr'>"; // 5 735 518 736 519 if ($showkey) {echo "\n\t\t<span class='key'>(".$kulturartk.")</span> ";} … … 761 544 echo "\n\t\t<span title='Jahreszahl'>".$jahr."</span>"; 762 545 } 763 echo "\n\t</td>"; 764 765 // Sp. 4/4 - leer, keine Links 766 echo "\n\t<td> </td>\n</tr>"; 546 echo "\n\t</td>"; // 5 547 echo "\n\t<td> </td>\n</tr>"; // 6 767 548 $j++; 768 549 } 769 770 550 // Summenzeile 771 551 $klasflaedis = number_format($klasflae,0,",",".")." m²"; 772 echo "\n<tr>\n\t<td class='re'>Ertragsmesszahl:</td>" 773 ."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen für dies Flurstück'>".$gesertragsmz."</td>" 774 ."\n\t<td class='re'>".$klasflaedis."</td>\n\t<td colspan='3'> </td>\n</tr>"; 552 echo "\n<tr>\n\t<td class='re'>Ertragsmesszahl:</td>" // 1 553 ."\n\t<td class='fla sum' title='Summe der Ertragsmesszahlen für dies Flurstück'>".$gesertragsmz."</td>" // 2 554 ."\n\t<td class='re'>".$klasflaedis."</td>" // 3 555 ."\n\t<td colspan='3'> </td>\n</tr>"; // 4-6 775 556 } 776 557 … … 791 572 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql_boden."<br>$1 = gml_id = '".$gmlid."'</p>";} 792 573 } 793 794 574 $sql_str="SELECT gml_id FROM ax_besondereflurstuecksgrenze WHERE endet IS NULL AND 1000 = ANY(artderflurstuecksgrenze) 795 575 AND ST_touches((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1 AND endet IS NULL),wkb_geometry);"; … … 801 581 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".$sql_str."<br>$1 = gml_id = '".$gmlid."'</p>";} 802 582 } 803 804 583 if (pg_num_rows($res_bodeneuordnung) > 0 OR pg_num_rows($res_strittigeGrenze) > 0) { 805 584 echo "\n<tr>" 806 ."\n\t<td title='Hinweise zum Flurstück'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> " 807 ."Hinweise:</h6></td>\n\t<td colspan='5'> </td>" 808 ."\n</tr>"; 809 585 ."\n\t<td title='Hinweise zum Flurstück'><h6><img src='ico/Hinweis.png' width='16' height='16' alt=''> " // 1 586 ."Hinweise:</h6></td>\n\t<td colspan='5'> </td>\n</tr>";// 2-6 810 587 if (pg_num_rows($res_bodeneuordnung) > 0) { 811 812 while ($row = pg_fetch_array($res_bodeneuordnung)) { // 3 Zeilen je Verfahren 813 814 // Zeile 1 - kommt immer, darum hier den Link 815 echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>" 816 ."\n\t<td>Bodenrecht</td>" 817 ."\n\t<td class='re'>Festlegung: </td>" // "Art der Festlegung" zu lang 818 ."\n\t<td colspan='3'>"; 588 while ($row = pg_fetch_assoc($res_bodeneuordnung)) { // 3 Zeilen je Verfahren 589 echo "\n<tr title='Bau-, Raum- oder Bodenordnungsrecht'>" // Zeile 1 - kommt immer, darum hier den Link 590 ."\n\t<td>Bodenrecht</td>" // 1 591 ."\n\t<td class='re'>Festlegung: </td>" // 2 "Art der Festlegung" zu lang 592 ."\n\t<td colspan='3'>"; // 3-5 819 593 if ($showkey) {echo "<span class='key'>(".$row['wert'].")</span> ";} 820 594 echo $row['art_verf'] 821 595 ."</td>"; 822 // LINK: 823 echo "\n\t<td>" 596 echo "\n\t<td>" // 6 LINK: 824 597 ."\n\t\t<p class='nwlink noprint'>" 825 598 ."\n\t\t\t<a href='alkisbaurecht.php?gkz=".$gkz."&gmlid=".$row['verf_gml']; … … 829 602 ."\n\t</td>" 830 603 ."\n</tr>"; 831 832 // Zeile 2 833 $dstell=$row['stelle_key']; 604 $dstell=$row['stelle_key']; // Zeile 2 834 605 if ($dstell != "") { // Kann auch leer sein 835 606 echo "\n<tr title='Flurbereinigungsbehörde'>" 836 ."\n\t<td> </td>" 837 ."\n\t<td class='re'>Dienststelle: </td>" 838 ."\n\t<td colspan='3'>"; 607 ."\n\t<td> </td>" // 1 608 ."\n\t<td class='re'>Dienststelle: </td>" // 2 609 ."\n\t<td colspan='3'>"; // 3-5 839 610 if ($showkey) {echo "<span class='key'>(".$dstell.")</span> ";} 840 611 echo $row['stelle_bez'] 841 612 ."</td>" 842 ."\n\t<td> </td>" 613 ."\n\t<td> </td>" // 6 843 614 ."\n</tr>"; 844 615 } 845 846 // Zeile 3 847 $vbez=$row['verf_bez']; // ist nicht immer gefÃŒllt 616 $vbez=$row['verf_bez']; // Zeile 3, ist nicht immer gefÃŒllt 848 617 $vnam=$row['verf_name']; // noch seltener 849 618 if ($vbez != "") { … … 872 641 echo "\n</table>"; 873 642 874 // G R U N D B U C H 875 echo "\n\n<table class='outer'>" 876 ."\n<tr>" 877 ."\n\t<td>" 878 ."\n\t\t<h3 id='gb'><img src='ico/Grundbuch_zu.png' width='16' height='16' alt=''> Grundbücher</h3>" 879 ."\n\t</td>" 880 ."\n\t<td>" 881 ."\n\t\t<p class='nwlink noprint'>" 882 ."\n\t\t\t<a href='".$_SERVER['PHP_SELF']. "?gkz=".$gkz."&gmlid=".$gmlid."&berbu=".$berbu; 883 if ($showkey) {echo "&showkey=j";} 884 885 // Umschalter: FS-Nachweis ruft sich selbst mit geaendertem Parameter auf. Positionierung auf Marke "#gb" 886 if ($eig=="j") { 887 echo "&eig=n#gb' title='Umschalter: Flurstücksnachweis'>ohne Eigentümer</a>"; 888 } else { 889 echo "&eig=j#gb' title='Umschalter: Flurstücks- und Eigentümernachweis'>mit Eigentümer " 890 ."<img src='ico/EigentuemerGBzeile.png' width='16' height='16' alt=''></a>"; 643 // B U C H U N G S S T E L L E N zum FS 644 $bartgrp=""; // Buchungsart 645 $barttypgrp=""; // Buchungsart Typ 646 if ($gml_buchungsstelle == '') {echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>";} 647 echo "\n<table class='outer'>"; // ALLE Buchungen und EigentÃŒmer in 4 Spalten EINER Tabelle ausgeben 648 $stufe=1; // SchleifenzÀhler Tiefe 649 $gezeigt=buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid); // die ("dienende") Buchung anzeigen, wenn nicht fiktiv. Liefert true/false 650 651 $anzber=ber_bs_zaehl($gml_buchungsstelle); // Anzahl berechtigte Buchungen (nÀchste Stufe) zu dieser Buchung ermitteln 652 $verf_next = array($gml_buchungsstelle); // Start Recursion mit einem Element 653 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 654 655 while ($anzber > 0 ) { // Stufe - recursiv in die Tiefe, solange es was zu verfolgen gibt 656 $verf_akt=$verf_next; // die nÀchste Stufe als aktuell ÃŒbernehmen .. 657 $verf_next=array(); // .. und zum AuffÃŒllen leeren 658 $stufe++; 659 $i=0; // SchleifenzÀhler Elemente 660 foreach($verf_akt as $gml_ber_bs) { 661 $i++; 662 if (ber_bs_zaehl($gml_ber_bs) > 0) { 663 $verf_neu=ber_bs_anzg($gml_ber_bs, $eig, $gmlid); // Anzeige ber. Buchungst., ggf. mit EigentÃŒmer. 664 $anz_neu=count($verf_neu); // Das Ergebnis zÀhlen 665 // if ($debug > 2) {echo "<p class='dbg'>Weiter zu verfolgen: Stufe ".$stufe.", Element ".$i.", Anzahl: ".$anz_neu."</p>";} 666 if ($anz_neu > 0) { // wenn neue geliefert 667 $verf_next=array_merge($verf_next, $verf_neu); // die neuen an die Sammlung heften 891 668 } 892 echo "\n\t\t</p>" 893 ."\n\t</td>" 894 ."\n</tr>" 895 ."\n</table>"; 896 897 // B U C H U N G S S T E L L E N zum FS (istGebucht) 898 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.v AS bart, b.d AS barttitle 899 FROM ax_flurstueck f JOIN ax_buchungsstelle s ON s.gml_id=f.istgebucht 900 LEFT JOIN alkis_wertearten b ON cast(s.buchungsart AS character varying)=b.k AND b.element='ax_buchungsstelle' AND b.bezeichnung='buchungsart' 901 WHERE f.gml_id= $1 AND f.endet IS NULL AND s.endet IS NULL ORDER BY s.laufendenummer;"; 902 903 $v = array($gmlid); 904 $ress = pg_prepare("", $sql); 905 $ress = pg_execute("", $v); 906 if (!$ress) { 907 echo "\n<p class='err'>Keine Buchungsstelle.</p>"; 908 if ($debug > 1) { 909 echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>"; 910 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmlid."'</p>";} 911 } 912 } 913 $bs=0; // Z.BuchungsStelle 914 while($rows = pg_fetch_array($ress)) { // Schleife Buchungs-Stelle 915 $gmls=$rows["gml_id"]; // gml b-Stelle 916 $lfd=$rows["lfd"]; // BVNR 917 $barttitle=htmlentities($rows["barttitle"], ENT_QUOTES, "UTF-8"); // .. fÃŒr Anzeige aufbereitet 918 919 // B U C H U N G S B L A T T zur Buchungsstelle (istBestandteilVon) 920 $sql="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, wb.v AS blattartv, wb.d AS blattartd, z.bezeichnung 921 FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON b.gml_id=s.istbestandteilvon 922 LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk 923 LEFT JOIN alkis_wertearten wb ON cast(b.blattart AS character varying)=wb.k AND wb.element='ax_buchungsblatt' AND wb.bezeichnung='blattart' 924 WHERE s.gml_id = $1 AND s.endet IS NULL AND b.endet IS NULL AND z.endet IS NULL 925 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 926 927 $v=array($gmls); 928 $resg=pg_prepare("", $sql); 929 $resg=pg_execute("", $v); 930 if (!$resg) { 931 echo "\n<p class='err'>Kein Buchungsblatt.</p>"; 932 if ($debug > 2) {echo "\n<p class='dbg'>SQL=<br>".htmlentities($sql, ENT_QUOTES, "UTF-8")."<br>$1 = gml_id = '".$gmls."'</p>";} 933 } 934 $bl=0; // Z.Blatt 935 while($rowg = pg_fetch_array($resg)) { 936 $gmlg=$rowg["gml_id"]; 937 $beznam=$rowg["bezeichnung"]; 938 $blattkeyg=$rowg["blattart"]; // Key 939 $blattartg=$rowg["blattartv"]; // Value 940 $blatt=$rowg["blatt"]; 941 echo "\n<hr>" 942 ."\n<table class='outer'>" 943 ."\n<tr>"; // 1 row only 944 echo "\n\t<td>"; // Outer linke Spalte: 945 946 // Rahmen mit GB-Kennz 947 if ($blattkeyg == 1000) { 948 echo "\n\t\t<table class='kennzgb' title='Bestandskennzeichen'>"; 949 }else { 950 echo "\n\t\t<table class='kennzgbf' title='Bestandskennzeichen'>"; // GB fiktiv = Rahmen dotted 951 } 952 echo "\n\t\t<tr>\n\t\t\t<td class='head'>Bezirk</td>" 953 ."\n\t\t\t<td class='head' title='".$rowg["blattartd"]."'>"; 954 if ($showkey) {echo "<span class='key'>".$blattkeyg."</span> ";} 955 echo $blattartg."</td>" 956 ."\n\t\t\t<td class='head'>Lfd-Nr.</td>" 957 ."\n\t\t\t<td class='head'>Buchungsart</td>" 958 ."\n\t\t</tr>" 959 ."\n\t\t<tr>" 960 ."\n\t\t\t<td title='Grundbuchbezirk'>"; 961 if ($showkey) {echo "<span class='key'>".$rowg["bezirk"]."</span><br>";} 962 echo $beznam." </td>" 963 ."\n\t\t\t<td title='Grundbuch-Blatt'><span class='wichtig'>".$blatt."</span></td>" 964 ."\n\t\t\t<td title='Bestandsverzeichnis-Nummer (BVNR, Grundstück)'>".$lfd."</td>" 965 ."\n\t\t\t<td title='".$barttitle."'>"; 966 if ($showkey) {echo "<span class='key'>".$rows["buchungsart"]."</span><br>";} 967 echo $rows["bart"]."</td>" 968 ."\n\t\t</tr>" 969 ."\n\t\t</table>"; 970 971 // Miteigentumsanteil 972 if ($rows["zaehler"] <> "") { 973 echo "\n<p class='ant'>".$rows["zaehler"]."/".$rows["nenner"]." Anteil am Flurstück</p>"; 974 } 975 echo "\n\t</td>\n\t<td>"; // Outer rechte Spalte: NW-Links 976 977 echo "\n\t\t<p class='nwlink noprint'>weitere Auskunft:<br>"; 978 if ($showkey) {echo "<span class='key'>".$blattkeyg."</span> ";} 979 echo "\n\t\t\t<a href='alkisbestnw.php?gkz=".$gkz."&gmlid=".$gmlg; 980 if ($showkey) {echo "&showkey=j";} 981 echo "#bvnr".$lfd; // Die # hinter die &-Paramter 982 if ($blattkeyg == 1000) { 983 echo "' title='Grundbuchnachweis mit kompletter Eigentümerangabe'>"; 984 } else { 985 echo "' title='Grundbuchnachweis'>"; 986 } 987 echo $blattartg." <img src='ico/GBBlatt_link.png' width='16' height='16' alt=''>" 988 ."</a>" 989 ."\n\t\t</p>"; 990 991 // berechtigte Buchungstellen (im rechten Teil der ÀuÃeren Tab. 992 $cnt_ber = ber_bs_hinw($gmls, $gmlid); // Hinweis ausgeben, zÀhlen 993 994 echo "\n\t</td>" // ende aussen rechts 995 ."\n</tr>" 996 ."\n</table>"; 997 998 // +++ Weitere Felder ausgeben? BeschreibungDesUmfangsDerBuchung 999 if ($rows["sond"] != "") { 1000 echo "\n<p class='sond' title='Sondereigentum'>Verbunden mit dem Sondereigentum<br>".$rows["sond"]."</p>"; 1001 } 1002 if ($rows["nrpl"] != "") { 1003 echo "\n<p class='nrap' title='Nummer im Aufteilungsplan'>Nummer <span class='wichtig'>".$rows["nrpl"]."</span> im Aufteilungsplan.</p>"; 1004 } 1005 1006 // E I G E N T U E M E R, zum GB 1007 // Person <-benennt< AX_Namensnummer >istBestandteilVon-> AX_Buchungsblatt 1008 if ($eig=="j") { // Wahlweise mit/ohne EigentÃŒmer 1009 $n = eigentuemer($gmlg, false, ""); // hier ohne Adresse 1010 if ($n == 0) { 1011 if ($blattkeyg == 1000) { 1012 echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"; 1013 } else { 1014 echo "\n<p>ohne Eigentümer.</p>"; 1015 } 1016 } 1017 } 1018 1019 // B e r e c h t i g t e B u c h u n g e n ... zu dieser Buchungs-Stelle. Optional. 1020 if ($berbu=="j") { // Wahlweise anzeigen 1021 echo "\n<hr>\n<h3 id='berbu'><img src='ico/Grundbuch.png' width='16' height='16' alt=''> Berechtigte Buchungen</h3>" 1022 ."\n<p>".$cnt_ber." Buchungen mit Rechten an der Buchung ".$lfd." auf ".$blattartg." ".$blatt." von ".$beznam.":</p>"; 1023 ber_bs_anz($gmls, $eig); // berechtigte Buchungstellen und GB-BlÀtter Anzeigen, und ggf. auch mit EigentÃŒmer 1024 } 1025 $bl++; // ZÀhl Blatt 1026 } 1027 if ($bl == 0) {echo "\n<p class='err'>Kein Buchungsblatt zur Buchungstelle gefunden.</p>";} 1028 $bs++; // ZÀhl Buchungs-Stelle 1029 } 1030 1031 pg_free_result($resg); 1032 if ($bs == 0) {echo "\n<p class='err'>Keine Buchungstelle zum Flurstück gefunden.</p>";} 669 } 670 } // Ende Buchungs-Array in der Stufe 671 $anzber=count($verf_next); // Sammlung auf Stufe zÀhlen, Steuert die Schleife. 672 //if ($debug > 2) {echo "<p class='dbg'>Nach Stufe ".$stufe.", Anzahl: ". $anzber ."</p>";} 673 } // Ende Stufe 674 // Diese aufwÀndige Analyse mit Arrays geht davon aus, dass es Verzweigungen auf oberen Stufen geben könnte, 675 // so dass mehrere Zweige parallel weiter zu verfolgen sind. In der Praxis ist eine Verzweigung bisher nur in der letzten Stufe vorgekommen. 676 // Eine weniger aufwÀndige Lösung (ohne Arrays) wÃŒrde reichen, wenn das immer so wÀre: 677 /* Alte Version (einfacher): 678 $gezeigt = buchung_anzg($gml_buchungsstelle, $eig, false, $gmlid); 679 $anzber = ber_bs_zaehl($gml_buchungsstelle); 680 if ($anzber > 0 ) { 681 $verfolg = ber_bs_anzg($gml_buchungsstelle, $eig, $gmlid); 682 while ($verfolg != "") { 683 $valt=$verfolg; 684 $verfolg = ber_bs_anzg($valt, $eig, $gmlid); 685 } 686 } */ 687 echo "\n</table>\n\n"; 688 1033 689 pg_close($con); 1034 690 echo <<<END 1035 1036 691 <div class='buttonbereich noprint'> 1037 692 <hr> 1038 693 <a title="zurück" href='javascript:history.back()'><img src="ico/zurueck.png" width="16" height="16" alt="zurück"></a> 1039 694 <a title="Drucken" href='javascript:window.print()'><img src="ico/print.png" width="16" height="16" alt="Drucken"></a> 1040 <a title="Export als CSV" href='javascript:ALKISexport()'><img src="ico/download_fs.png" width="32" height="16" alt="Export"></a> 1041 </div>1042 695 END; 1043 footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig."&berbu=".$berbu); 696 echo "\n\t<a title='Export als CSV' href='javascript:ALKISexport(\"" . $gmlid . "\")'><img src='ico/download_fs.png' width='32' height='16' alt='Export'></a> \n</div>"; 697 698 footer($gmlid, $_SERVER['PHP_SELF']."?", "&eig=".$eig); 1044 699 ?> 1045 700 </body>
Note: See TracChangeset
for help on using the changeset viewer.